from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
from bokeh.io import output_notebook  # 如果在 Jupyter Notebook 中运行，取消这行的注释

# output_notebook()  # 在 Jupyter Notebook 中显示图表

# 准备示例数据
x = [1, 2, 3, 4, 5]
y1 = [6, 7, 2, 4, 5]
y2 = [2, 3, 4, 5, 6]
y3 = [4, 5, 5, 7, 2]

# 创建一个新的图表
p = figure(title="点击图例显示/隐藏折线示例", width=400, height=300)

# 绘制三条折线，并为每条线设置标签（label），这个标签将成为图例的名称
line1 = p.line(x, y1, legend_label="产品 A", line_color="blue", line_width=2)
line2 = p.line(x, y2, legend_label="产品 B", line_color="red", line_width=2)
line3 = p.line(x, y3, legend_label="产品 C", line_color="green", line_width=2)

# !!! 关键步骤：设置图例的点击策略为 'hide' 或 'mute'
p.legend.click_policy = "hide"  # 或者使用 "mute"

# （可选）添加其他交互工具，如缩放、平移等
p.toolbar.autohide = True  # 自动隐藏工具栏，以获得更简洁的视图

# 显示图表
show(p)